/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package logic;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * Clase LibreriaCalendario. Encargada de manejar la conversión y validación de 
 * un String a un objeto tipo Calendar y viceversa.
 * @author Victoria Fuenmayor y José Gabriel Rivera 
 */
public class LibreriaCalendario {
    
    /**
     * Convierte el tipo de dato String recibido a uno de tipo Calendar.
     * Recibe la fecha de nacimiento en String.
     * @param fechaNacStr
     * @return Fecha de nacimiento (Tipo Calendar).
     * @throws Exception si el formato en el String no coincide con el especificado.
     */
    public static Calendar stringToCalendar ( String fechaNacStr ) throws Exception{
        DateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
        Date fechaDate = new Date();
        Calendar fechaCalendar = new GregorianCalendar();
        
        try{
            fechaDate = formatoFecha.parse(fechaNacStr);
            fechaCalendar.setTime(fechaDate);
        }catch ( Exception e ){
            throw new Exception(e);
        }
        return fechaCalendar;
    }
    
    /**
     * Valida si la fecha se encuentra en el rango adecuado (dia, mes, año),
     * Recibe por parámetro la fecha en String.
     * @param fecha
     * @return Verdadero si la fecha está correcta, falso en caso contrario.
     */
    public static boolean validarFecha(String fecha){
        String finicio[] = fecha.split("/");
        int dato = Integer.parseInt(finicio[0]);
        int dato1 = Integer.parseInt(finicio[1]);
        int dato2 = Integer.parseInt(finicio[2]);
        if ((dato>=0) && (dato<=31) && (dato1>=0) && (dato1<=12) && (dato2>=2013) && (dato2<=2100)){
            return true;
        }
    return false;
    }
    
    /**
     * Convierte la fecha de tipo Calendar en una de tipo String.
     * @param fecha
     * @return fecha (Tipo String)
     */        
    public static String calendarToString ( Calendar fecha ){
        DateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
        return formatoFecha.format(fecha.getTime());
    }
        
}
